package lanou.a36ke_01.tools;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;


public abstract class BaseActivity extends AppCompatActivity {

    protected NetTool mNetTool;//网络请求用的工具类

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mNetTool = new NetTool(this);//设置了tag是自己 当Activity被销毁的时候,可以通过这个tag来取消此Activity的所有网络请求
        if (setLayout() != 0){
            setContentView(setLayout());
        } else {
            Log.d("BaseActivity","Activity:" + this.getClass().getSimpleName() +"没有绑定布局");
        }
        initView();//初始化组件 FindViewById的操作
        initDate();//初始化数据
    }
    protected abstract int setLayout();
    protected abstract void initView();
    protected abstract void initDate();

    protected <T extends View> T bindView (int id){
        return (T) findViewById(id);
    }

    //在Activity销毁的时候,把未完成的网络请求取消了
    @Override
    protected void onDestroy() {
        mNetTool.onDestory();
        mNetTool = null;
        super.onDestroy();
    }
}
